4
תגובות

C# listbox

פתח yonikal56 ,
יש לי listbox עם פריטים ארוכים מאורך השורה, הפריטים שמורים במסד, איך אפשר לעשות שפריטים ארוכים יהיו יותר משורה, בהתאם לאורך?

4 תשובות

avatar ענה intval ב 02 לאפריל 2015 #

לא נראה לי שיש אופציה כזו
אבל אפשר לגרום לרוחב של הליסטבוקס להשתנות בהתאם לאורך המילים על ידי הצבת
HorizontalContentAlignment="Stretch"

avatar ענה yonikal56 ב 07 לאפריל 2015 #

בסוף הצלחתי עם DrawItem וMeasureItem.

avatar ענה Ben ב 09 לאפריל 2015 #

יהיה נחמד אם תשתף את כולנו איך הצלחת כדי שאדם שנתקע באותה הבעיה ידע בדיוק. תרחיב קצת ;)

avatar ענה yonikal56 ב 09 לאפריל 2015 #

@Ben

הנה זה מה שעשיתי:
private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)
{
e.ItemHeight = (int)e.Graphics.MeasureString(listBox1.Items[e.Index].ToString(), listBox1.Font, listBox1.Width).Height;
}

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
e.DrawFocusRectangle();
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds);
}

ובform_load עשיתי:
listBox1.DrawMode = DrawMode.OwnerDrawVariable;